package com.mdd.common.util.uuid;

import java.util.Random;


/**
 * ID生成器工具类
 *
 * @author ymsoft
 */
public class IdUtils {
    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUUID() {
        return UUID.randomUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUUID() {
        return UUID.randomUUID().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUUID() {
        return UUID.fastUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUUID() {
        return UUID.fastUUID().toString(true);
    }


    /**
     * 短信验证码生成
     *
     * @return
     */
    public static String randomCaptcha() {
        Random random = new Random();
        int result = random.nextInt(900000) + 100000;
        return String.valueOf(result);
    }

    /**
     * 上传文件的时候随机生成数字
     *
     * @return
     */
    public static int random() {
        double v = Math.random() * 100;
        return (int) v;
    }

    public static String createId() {
        int hashCode = UUID.randomUUID().toString().hashCode();
        if (hashCode < 0) {
            hashCode = -hashCode;
        }
        // 0 代表前面补充0
        // 10 代表长度为10
        // d 代表参数为正数型
        String id = String.format("%010d", hashCode);
        return id;
    }


    public static Integer getId() {
        int hashCode = UUID.randomUUID().toString().hashCode();
        return hashCode;
    }

    public static void main(String[] args) {
        System.out.println(randomCaptcha());
        System.out.println(createId());
    }
}
